package com.ratta.supernote.note.plugincore.core;

import com.ratta.supernote.note.plugincore.core.listener.RNEventListener;
import com.ratta.supernote.note.plugincore.error.EnablePluginException;
import com.ratta.supernote.note.plugincore.notedata.PenInfo;
import com.ratta.supernote.note.plugincore.ui.menu.PluginMenuItemShowData;

public abstract class PluginAppAPI implements RNEventListener {


    public abstract String getPluginID();

    public abstract String getName();

    public abstract String getPluginPath();

    public abstract void showPluginView(PluginMenuItemShowData menuShowData);

    public abstract void destroyPlugin();

    public abstract void stopPlugin();

    public abstract PenInfo getPenInfo();

    public abstract Object getLayersJson();

    public abstract void setLayersJson(String layers);

    public abstract void onAddPluginEntranceFailed(EnablePluginException e);

    public abstract void registerConfigButtonRes(PluginMenuItemShowData showData);

    public abstract void invalidatePluginView();
}
